//配置  axios
//配置请求根路径
axios.defaults.baseURL = 'http://www.itcbc.com:3006'




//配置拦截器
// 添加请求拦截器  拦截所欲请求 

//统一配置 Authorizationg  这个请求头  
// axios.defaults.headers.common['Authorization'] = localStorage.getItem('mytoken');
//统一配置 Authorizationg  这个请求头

axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么

  //config表示当前这次请求的配置
  //比如 config.url     表示这次请求的URL地址
  //比如config.method  表示当前请求的请求方式
  //比如 config.headers  表示当前这次请求   程序员设置的请求头\

  //判断字符串的开头  如果开头是/user/   可以更加精细  user开头的接口 必须加请求头
  if (config.url.startsWith('/user/')) {
    config.headers.Authorization = localStorage.getItem('mytoken')
  }

  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});
// 添加请求拦截器










//添加响应拦截器
axios.interceptors.response.use(
  function (response) {
    // 2xx 范围内的状态码都会触发该函数。 表示用户名存在的时候
    //都要判断status是1  都要给提示

    if (response.data.status === 1) {
      alert(response.data.message)
    }
    // 对响应数据做点什么
    return response;
  }, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    //因为respose 表示响应结果  在有响应结果下  做提示  (保证在有响应结果的情况下  在做背别的)
    if (error.response) {
      // if(error.response.data.status === 1 && error.response.data.message === '身份认证失败')
      
      if(error.response){
        //说明token有问题了(被人为修改错了  过期了)  在响应拦截器第二个函数中加判断
        //跳转到登录页 重新登录
        if(error.response.status === 401){
          localStorage.removeItem('mytoken') //这行可选  可以选择将过期的token移除掉
          location.href = './login.html'
        }
       
      }
      if (error.response.data.status === 1) {
        alert(error.response.data.message)
      }
    }
    // 对响应错误做点什么
    return Promise.reject(error);
  });

//添加响应拦截器


